1. Field of the Invention
This invention relates to a modified discrete cosine transform ("MDCT") signal transforming device for executing fast calculation of linear transformation on digital signals such as speech, audio or picture signals.
2. Description of the Related Art
There has hitherto been known a transform encoding employing a so-called orthogonal transform as a type of high efficiency encoding of encoded chronological sampling data such as audio signals encoded by high-efficiency bit compression. The transform encoding means encoding after block-based orthogonal transform of input signals. Typical of the transform encoding is a discrete cosine transform (DCT). Such transform encoding suffers from a problem of block distortion in which non-continuous block-to-block transitions are perceived as noises. The conventional practice for coping with such problem has been to have an end of a block overlapped with an adjacent block. According to a modified DCT (MDCT), a given block is overlapped with both adjacent blocks each by one-half a block size in such a manner as to preclude superfluous transmission of samples of overlapped portions. Thus the MDCT is highly suitable for high efficiency encoding.
Such MDCT and IMDCT (inverse modified discrete cosine transform), which is its inverse transformation, are disclosed in "Filter Constraints in Hybrid MDCT Containing Plural Block Sizes" by Mochizuki, Yano and Nishiya in SHINGAKU-GIHO, CAS 90-10, DSP90-14, pages 55 to 60 and in "Adaptive Transform Encoding with Adaptive Block Lengths Using MDCT" by Uzu, Sugiyama, Iwatare and Nishiya in Extended Abstracts in Spring Meeting of Japan Society of Electronic Information Communication 1990, A-197. The above-mentioned MDCT and IMDCT are explained briefly by referring to FIG. 1.
Referring to FIG. 1, a given block of chronological sampling data, such as Jth block, has an overlap with the (J-1)th block and the (J+1)th block each by a half block (50% overlap). If the number of samples of the Jth block is N, N being a natural number, there is an overlap of N/2 samples between the Jth bock and the (J-1)th block, while there is similarly an overlap of N/2 samples between the Jth block and the (J+1)th block. Each of N samples of each of these blocks, such as the above-mentioned Jth block, is multiplied by a window Wh for forward transform or a pre-processing filter to produce an N number of chronological data 102.
The characteristics of the pre-processing filter or window Wh for orthogonal transform are selected depending on statistic properties of input signals so that power concentration of the transformed data will be maximum. By processing these N samples of the chronological data 102 by linear forward transformation by MDCT, an N/2 number of independent spectral data 103, that is one-half the number of input samples of the spectral data, are produced on the frequency domain. These N/2 number of the spectral data 103 are processed by inverse MDCT for producing an N number of chronological data 104 which are multiplied by a window Wf for executing inverse transform or a synthetic filter to produce chronological data 105. The resulting data are summed to output results of the forward and backward blocks to restore the original chronological input data.
Meanwhile, in practical processing operation of MDCT and IMDCT, a method for implementing fast operation using fast Fourier transform has been proposed in "A research in MDCT System and Fast Operation" by Iwatare, Nishiya and Sugiyama, in SHNGAK-GIHO, CAS 90-9, DSP 90-13, pages 49 to 54. The same method has also been disclosed in JP Patent KOKAI Publication NO. 4-44099 (1992). The calculating method for MDCT and IMDCT disclosed therein is hereinafter explained.
The definition of MDCT is given by an equation (1). ##EQU1##
In the above equation (1), x.sub.0 is an MDCT input signal, N a block length, Wh a window function for forward transform, y.sub.0 an MDCT output signal, C.sub.0 a constant, n an integer of from 0 to N-1, and k an integer of from 0 to N/2-1. Since MDCT processing on sliced chronological data is executed independently for each of the blocks, the block number J is omitted. Meanwhile, since the value of C.sub.0 is not critical in carrying out the calculation of MDCT, the following explanation is made on the assumption that C.sub.0 =1. For carrying out the operation, x.sub.0 is multiplied by a window for forward transform to find x.sub.01 as indicated by the equation (2). EQU x.sub.01 (n)=x.sub.0 (n)h(n) 0.ltoreq.n.ltoreq.N-1 (2)
From x.sub.01, as found from equation (2), x.sub.02 is calculated in accordance with equation (3). ##EQU2##
x.sub.03 is calculated in accordance with equation (4). EQU x.sub.03 (n)=x.sub.02 (2n)-x.sub.02 (N-1-2N) 0.ltoreq.n.ltoreq.N/2-1(4)
Then, x.sub.03 is multiplied by a coefficient as shown by the equation (5) to produce a series of complex number signals z.sub.01. EQU z.sub.01 (n)=x.sub.03 (2n)exp(-j2.pi.n/N) 0.ltoreq.n.ltoreq.N/2-1(5)
This signal series is processed with FFT having a length of N/2 to produce a series of complex number signals z.sub.02 shown by the equation (6). ##EQU3##
y.sub.01 is calculated from the produced series of complex number signals, as indicated by the following equation (7). EQU y.sub.01 (k)=Re (z.sub.02 (k) exp (-j2.pi.(k+1/2)/(2N))) 0.ltoreq.k.ltoreq.N/2-1 (7)
The above is coincident with y.sub.0 defined by the equation (1), as demonstrated by the above-cited Research Concerning MDCT System and Fast calculation.
On the other hand, definition of IMDCT is given by an equation (8). ##EQU4##
In the above equation (8), y.sub.1 is an IMDCT input signal, N a block length, f a window function for inverse transformation, x.sub.1 is an IMDCT output signal, C.sub.1 is a constant, n an integer of from 0 to N-1 and k an integer of from 0 to N/2-1. Since IMDCT processing on sliced chronological data is executed independently for each of the blocks, the block number J is omitted. Meanwhile, since the value of C.sub.0 is not critical in carrying out the calculation of MDCT, the following explanation is made on the assumption that C.sub.0 =1. For carrying out the calculation, y.sub.1 is re-arrayed in accordance with the following equation (9) to produce y.sub.11 : ##EQU5##
y.sub.11 is then multiplied by a coefficient as shown by the equation (10) to produce a series of complex number signals z.sub.11 : EQU z.sub.11 (k)=y.sub.11 (k) exp (-j2.pi.k/N) 0.ltoreq.k.ltoreq.N/2-1(10)
The complex number signal series is processed by inverse FFT over a length N/2 to produce a series of complex number signals z.sub.12 by the equation (11): ##EQU6##
The complex number signal series z.sub.12 thus formed is multiplied by a coefficient as shown by the equation (12) and a real number part is taken out to produce x.sub.11 : EQU x.sub.11 (n)=Re (2z.sub.12 (n) exp (-j2.pi.(n+1/2)/(2N)) 0.ltoreq.n.ltoreq.N/2-1 (12)
This x.sub.11 is re-arrayed, while changing its sign, as indicated by the equation (13), and is multiplied by inverse transforming window. ##EQU7##
The above is coincident with y.sub.0 defined by the equation (8), as demonstrated by the above-cited Research Concerning MDCT System and Fast calculation.
However, since the fast processing of MDCT for finding the spectrum for each domain having a length N and IMDCT which is its inverse operation are carried out with the present method using a complex number FFT having a length N/2, the N/4 log(N/2) times of multiplication of complex numbers, the N/4 log(N/2) times of addition of complex numbers and a work area for storing N/2 number of complex numbers are required if the algorithm as described above all in pp. 196 to 198 of "Fast Fourier Transform", by E. ORAN BRINGHAM, translated by Miyagawa and Imai, Theory of Base 2 FFT Algorithm, is used, meaning that the method cannot be said to be sufficiently effective if it is attempted to carry out fast processing by a small-scale processing unit.